package cn.xkai.exercise.a;

import com.google.gson.Gson;

/**
 * @description: 删除链表中的节点
 * 请编写一个函数，用于 删除单链表中某个特定节点 。在设计函数时需要注意，你无法访问链表的头节点head ，只能直接访问 要被删除的节点 。
 * 题目数据保证需要删除的节点 不是末尾节点 。
 * 链表中节点的数目范围是 [2, 1000]
 * -1000 <= Node.val <= 1000
 * 链表中每个节点的值都是 唯一 的
 * 需要删除的节点 node 是 链表中的节点 ，且 不是末尾节点
 * <p>
 * 自己的思路：未完成
 * 借鉴的思路：使当前的信息全部指向到下一个节点
 * 心得：思维跳跃!!
 * @author: kaixiang
 * @date: 2022-07-06
 **/
public class Solution37 {
    public void deleteNode(ListNode node) {
        node.val = node.next.val;
        node.next = node.next.next;
    }


    public static class ListNode {
        int val;
        ListNode next;

        ListNode(int x) {
            val = x;
        }
    }

    public static void main(String[] args) {
        ListNode n1 = new ListNode(4);
        ListNode n2 = new ListNode(1);
        ListNode n3 = new ListNode(5);
        ListNode n4 = new ListNode(9);
        n1.next = n2;
        n2.next = n3;
        n3.next = n4;
        Solution37 solution37 = new Solution37();
        solution37.deleteNode(n2);
        System.out.println(new Gson().toJson(n1));
    }
}
